<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script type="text/javascript">
    /*
     *向对象中添加属性
     *属性名：
     * 对象的属性名不强制要求遵守标识符的规范
     * 什么乱七八糟的名字都可以使用
     * 但我们还是尽量按照标识符的规范去做
     * 如果要使用特殊的属性名，不能采用.的方式来操作
     * 例子 obj["123"]="hello";
     *  dpcument.write(obj["123"]);
     * JS对象的属性值可以使任意的数据类型
     * 
     */
    var obj=new Object();
    obj["123"]="hello";
    obj.text1="hello";
    document.write(obj["123"]+"<br>");
    document.write(obj.text1+"<br>");

    obj["456"]=789;
    obj["nihao"]="你好";
    var n="nihao";
    var m="456";
    document.write(obj[m]+obj[n]);
    console.log(obj);
    
    var area=new Object();
    area=obj;
    console.log(area);//可以依靠obj之间的赋值来进行obj的套娃

    /*
     *in运算符
     *通过该运算符可以检查一个对象中是否含有指定的属性
     * 如果有则返回true，没有则返回false
     * 语法：
     * "属性名" in 对象
     */
    //检查obj中是否含有test，text1属性名
    console.log("test" in obj);//obj中没有test属性名，所以输出false
    console.log("text1" in obj);//obj中有text1属性名，所以输出true
    console.log("text1" in area);//因为area继承了obj中所有的属性名，所以在area中检查是否存在text1，也会输出true
    </script>
</head>
<body>
    
</body>
</html>